package com.lyd.collections.stream;

import java.util.ArrayList;
import java.util.Collections;
import java.util.function.Function;

/**
 * @Author:lyd
 **/
public class StreamDemo6 {
    public static void main(String[] args) {

        ArrayList<String> strList1 = new ArrayList<>();
        Collections.addAll(strList1, "张无忌", "张三丰", "周芷若", "刘备", "孙权", "曹操","皇太极");
        /**获取前3个元素
        strList.stream().limit(3).forEach(System.out::println);
        跳过前3个元素
        strList.stream().skip(3).forEach(System.out::println);
        获取 "周芷若", "刘备", "孙权"
        有两种方法实现 1；先获取这5个元素，再把前两个元素去掉
                    2：把前面两个元素跳过，再获取后面3个元素
        strList.stream().limit(5).skip(2).forEach(System.out::println);
        strList.stream().skip(2).limit(3).forEach(System.out::println);
         */
        //map  转换流中的数据类型
        ArrayList<String> strList2 = new ArrayList<>();
        Collections.addAll(strList2, "张无忌-14", "张三丰-34", "周芷若-18", "刘备-45", "孙权-39", "曹操-81", "皇太极-88");
        //需求：取出每个元素的年龄
//        strList2.stream().map(new Function<String, Integer>() {
//
//            @Override
//            public Integer apply(String s) {
//                String[] str = s.split("-");
//                int age = Integer.parseInt(str[1]);
//                return age;
//            }
//        }).forEach(System.out::println);
        strList2.stream().map(s ->Integer.parseInt(s.split("-")[1]))
                .forEach(System.out::println);
    }
}
